package com.ruoyi.personnel.oa.sequence.service;

import com.ruoyi.personnel.oa.sequence.domain.ApproveSequence;
import com.ruoyi.personnel.oa.sequence.domain.ApproveSequenceCond;

import java.util.List;

/**
 * 业务层
 * 审批顺序
 */
public interface IApproveSequenceService {
    /**
     * 根据搜索条件所有审批顺序记录
     * @param cond 搜索条件
     * @return
     */
    List<ApproveSequence> selectSequenceList(ApproveSequenceCond cond);

    /**
     * 通过编号查询该编号的审批顺序
     * @param approveType
     * @return
     */
    ApproveSequence selectSequenceById(String approveType);

    /**
     * 修改审批顺序
     * @param approveSequence
     * @return
     */
    int updateSequence(ApproveSequence approveSequence);

    /**
     * 检查当前登录用户角色中是否在该事件的审批人列表中
     * @param approveType
     * @return
     */
//    boolean checkLoginRoleIfInApproverList(String approveType);

    /**
     * 找出当前角色在审批人列表中的角色
     * @param approveType
     * @return
     */
//    long findRoleInApproverList(String approveType);

    /**
     * 获取最低一级角色
     * @param approveType
     * @return
     */
    long getLowestRoleId(String approveType);

    /**
     * 获取最高一级角色
     * @param approveType
     * @return
     */
    long getHighestRoleId(String approveType);

    /**
     * 检查当前登陆角色是否是该事件审批人的最高级
     * @param approveType
     * @return
     */
//    boolean checkLoginRoleIfIsHighest(String approveType);
}
